package cn.it.shop.service.impl;

import java.util.Set;

import org.springframework.stereotype.Service;

import cn.it.shop.pojo.Forder;
import cn.it.shop.pojo.Sorder;
import cn.it.shop.service.SorderService;

@Service("sorderService")
public class SorderServiceImpl extends BaseServiceImpl<Sorder> implements
		SorderService {

	@Override  // 向购物车,添加购物项,(判断是否重复),返回新购物车,不能save开头, 否则会切入事务
	public Forder addSorder(Forder forder, Sorder sorder) {
		//1: 获取购物项set集合
		boolean isHave=false;
		// 获取原来购物项集合
		Set<Sorder> sorderSet = forder.getSorderSet();
		for(Sorder temp:sorderSet){
			// 通过商品编号来判断是否重复
			if(temp.getGoods().getId().equals(sorder.getGoods().getId())){
				// 新的购物项已存在于购物车中,数量+1即可
				temp.setNumber(temp.getNumber()+sorder.getNumber());
				isHave=true;
				break;
			}
		}
		if(!isHave){
			// 建立购物项与购物车关系(学生与班级的关系), 此时Forder对象中的id是没有值的,但是在添加订单的时候,先添加Forder
			//在添加sorder,那时候Forder 就有id了
			System.out.println("forder.id=" + forder.getId());
			sorder.setForder(forder);
			// 把购物项添加到购物车中
			sorderSet.add(sorder);
		}
		// 不需要此操作,forder存放的set集合是地址,不是set对象本身
		// forder.setSorderSet(sorderSet);
		//返回新的购物车
		return forder;
	}
}
